//package joindemo.utils;
//
//import cn.dev33.satoken.session.SaSession;
//import cn.dev33.satoken.stp.SaLoginModel;
//import cn.dev33.satoken.stp.StpUtil;
//import cn.hutool.core.bean.BeanUtil;
//import cn.hutool.core.convert.Convert;
//import cn.hutool.core.util.ObjectUtil;
//import lombok.AccessLevel;
//import lombok.NoArgsConstructor;
//import lombok.extern.slf4j.Slf4j;
//
//@Slf4j
//@NoArgsConstructor(access = AccessLevel.PRIVATE)
//public class UserHelper {
//    private final static String LOGIN_USER = "loginUser";
//    private final static String USER_ID = "userId";
//    private final static String USER_NAME = "username";
//    private final static String USER_ROLE = "role";
//    //自动登陆过期时间（7天免登录）
//    private final static long TIME_OUT = 7*24*60L;
//    public static void login(User user,boolean isRemember){
//        SaLoginModel saLoginModel = new SaLoginModel();
//        //检测是否7天免登录
//        if (isRemember){
//            saLoginModel.setTimeout(TIME_OUT);
//        }
//
//        //从token中提取用户基本信息
//        StpUtil.login(user.getUserId(),
//                saLoginModel.setExtra(USER_ID,user.getUserId()) .setExtra(USER_NAME,user.getNickname())
//                        .setExtra(USER_ROLE,user.getRole()));
//        StpUtil.getTokenSession().set(LOGIN_USER, BeanUtil.copyProperties(user,User.class,"password"));
//
//    }
//
//    public static User getLoginUser(){
//        SaSession s = StpUtil.getTokenSession();
//        if(ObjectUtil.isNull(s)) {
//            return null;
//        }
//        return (User) s.get(LOGIN_USER);
//    }
//    public static Long getUserId(){
//        return Convert.toLong(getExtra(USER_ID));
//    }
//
//    public static String getUserName(){
//        return Convert.toStr(getExtra(USER_NAME));
//    }
//
//    public static Boolean checkToken(String token){
//        return StpUtil.getTokenTimeout(token)>-1;
//    }
//
//    public static Object getExtra(String key){
//        try{
//            return StpUtil.getExtra(key);
//        }catch (Exception e){
//            return null;
//        }
//    }
//}
